﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Etong.Web;
/// <summary>
///AccessColumnType 的摘要说明
/// </summary>
public class AccessColumnType:IDBColumnDataType
{
	public AccessColumnType()
	{
		//
		//TODO: 在此处添加构造函数逻辑
		//
	}

    #region IDBColumnDataType 成员

    public ColumnDataType GetColumnDataType(string typeStr)
    {
        switch (int.Parse(typeStr))
        {
            case 3:
                return ColumnDataType.Number;                
            case 7:
                return ColumnDataType.DateTime;                
            case 11:
                return ColumnDataType.Bool;
            case 130:
                return ColumnDataType.Text;
            default:
                return ColumnDataType.Text;
        }
    }

    #endregion

    #region IDBColumnDataType 成员


    public string GetSqlValue(string str, ColumnDataType dataType)
    {
        switch (dataType)
        {
            case ColumnDataType.Number:
                double temp = 0;
                if (double.TryParse(str, out temp))
                {
                    return str;
                }
                else
                {
                    return "0";
                }                
            case ColumnDataType.DateTime:
                DateTime temp1 = DateTime.Now;
                if (DateTime.TryParse(str, out temp1))
                {
                    return "#" + str + "#";
                }
                else
                {
                    return "null";
                }
            case ColumnDataType.Bool:
                if (string.IsNullOrEmpty(str))
                {
                    return "0";
                }
                if (str.ToLower() == "true")
                {
                    return "-1";
                }
                else
                {
                    return "0";
                }
            default:
                if (!string.IsNullOrEmpty(str))
                {
                    return "'" + str.ToSql() + "'";
                }
                else
                {
                    return "''";
                }
        }
    }

    #endregion

    #region IDBColumnDataType 成员


    public string GetDateDiffDateParam()
    {
        return "'d'";
    }

    #endregion
}
